/*
  Created on Jul 7, 2005
  (C) 2005 
  @author Michael Long

  This program is free software; you can redistribute it and/or
  modify it under the terms of Version 2 of the GNU General Public 
  License.
  
  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  General Public License for more details.
  
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free
  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

package sxe.core.math;

import java.util.Random;

import snobject.snInteger;
import snobject.snObject;
import snobject.snObjectArgList;
import step.EvaluationFailure;
import step.FunctionWrapper;


public class random extends FunctionWrapper {
	
	protected Random generator = null;

	/* Remember: One-time opcode initialization 
	 * can be done in the object constructor.
	 */
	public random(){
		generator = new Random();
	}
	
	public snObject Call(snObjectArgList argv) throws EvaluationFailure, ClassCastException {
		/* parms are range for random number generated */
		int i1 = argv.popInteger().getInt();
		int i2 = argv.popInteger().getInt();
		int ret = generator.nextInt(i2-i1) + i1;
		
		return new snInteger(ret);
	}

}
